<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script !src="">
    /*js的对象应该是所有属性的容器*/
    // 给直接量
    var person = {
        firstName:"张",
        lastName:"三三",
        age:50,
        sex:"男",
        height:178,
        eat:function (){
            alert('大口吃饭')
            return "123"
        }
        // 如果只访问eat，则是在访问属性
        // 如果访问的事eat()， 则是在方法方法
    };
    console.log(person.lastName)
    console.log(person.eat()) // 直接执行函数内容
    console.log(person.eat) // 这是输出函数的结构，并不会执行函数的内容

    // new Object
    var p = new Object();
    p.username="李四四";
    p.password=123456;
    p.height = 180
    // 添加方法
    p.sleep = function () {
        alert("呼呼的睡觉！")
    }

    console.log(p.username)
    console.log(p.height)
    p.sleep()

    // 通过构造方法【java中构造方法的名字和类名称一致！ java中构造方法是用来初始化属性的！】
    function cat(age,name,color,weight){
        this.age = age;
        this.name = name;
        this.color = color;
        this.weight = weight;
        this.run = function () {
            alert('悄悄的跑1！！！')
        }
    }
    var cat1 = new cat(5,"小白","白色",10);
    console.log(cat1.name)
    cat1.run()


</script>

</body>
</html>